﻿using BonjourQuotation.ObjectModel.AccountData;
using BonjourQuotation.ObjectModel.BusinessData;
using BonjourQuotation.ObjectModel.ErrorData;
using BonjourQuotation.ObjectModel.SetupData;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BonjourQuotation.DataAccess.Repositories
{
    public interface ISetupRepository : IDisposable
    {
        #region IManageQuotationRepositroy
        SetupManageQuotationsGridBData LoadManageQuotations(int PageNumber);
        SetupManageQuotationsGridBData LoadSearchedManageQuotations(SetupManageQuotationsGridBData Data);
        ErrorBInfo SaveManageQuotationDetailsData(SetupManageQuotationsGridBData Data);
        #endregion
        #region IManageQuotationGroupsRepositroy
        SetupManageQuotationGroupsGridBData LoadManageQuotationGroups(int PageNumber);
        SetupManageQuotationGroupsGridBData LoadSearchedManageQuotationGroups(SetupManageQuotationGroupsGridBData Data);
        ErrorBInfo SaveManageQuotationGroupDetailsData(SetupManageQuotationGroupsGridBData Data);
        #endregion
        #region IRegionRepositroy
        ErrorBInfo CreateRegion(SetupRegionsGridBData Data);
        SetupRegionsGridBData LoadRegions(int PageNumber);
        ErrorBInfo DeleteRegionById(int RegionId);

        SetupRegionsGridBData LoadSearchedRegions(SetupRegionsGridBData Data);
        ErrorBInfo SaveRegionDetailsData(SetupRegionsGridBData Data);
        #endregion
        #region IStateRepositroy
        ErrorBInfo CreateState(SetupStatesGridRowBData Data);
        SetupStatesGridBData LoadStates(int PageNumber);
        ErrorBInfo DeleteStateById(int StateId);
        SetupStatesGridBData LoadSearchedStates(SetupStatesGridBData Data);
        ErrorBInfo SaveStateDetailsData(SetupStatesGridBData Data);
        #endregion
        #region IDetailTypeRepositroy
        ErrorBInfo CreateDetailType(SetupDetailTypesGridBData Data);
        SetupDetailTypesGridBData LoadDetailTypes(int PageNumber);
        ErrorBInfo DeleteDetailTypeById(int DetailTypeId);
        SetupDetailTypesGridBData LoadSearchedDetailTypes(SetupDetailTypesGridBData Data);
        ErrorBInfo SaveDetailTypeDetailsData(SetupDetailTypesGridBData Data);
        #endregion
        #region IVendorTypeRepositroy
        ErrorBInfo CreateVendorType(SetupVendorTypesGridRowBData Data);
        SetupVendorTypesGridBData LoadVendorTypes(int PageNumber);
        ErrorBInfo DeleteVendorTypeById(int VendorTypeId);
        SetupVendorTypesGridBData LoadSearchedVendorTypes(SetupVendorTypesGridBData Data);
        ErrorBInfo SaveVendorTypeDetailsData(SetupVendorTypesGridBData Data);
        #endregion
        #region IPaymentTypeRepositroy
        ErrorBInfo CreatePaymentType(SetupPaymentTypesGridBData Data);
        SetupPaymentTypesGridBData LoadPaymentTypes(int PageNumber);
        ErrorBInfo DeletePaymentTypeById(int PaymentTypeId);
        SetupPaymentTypesGridBData LoadSearchedPaymentTypes(SetupPaymentTypesGridBData Data);
        ErrorBInfo SavePaymentTypeDetailsData(SetupPaymentTypesGridBData Data);
        #endregion
        #region ICountryRepositroy
        ErrorBInfo CreateCountry(SetupCountriesGridRowBData Data);
        SetupCountriesGridBData LoadCountries(int PageNumber);
        SetupCountriesGridBData LoadSearchedCountries(SetupCountriesGridBData Data);
        ErrorBInfo DeleteCountryById(int CountryId);
        ErrorBInfo SaveCountryDetailsData(SetupCountriesGridBData Data);
        #endregion
        #region IAreaRepositroy
        ErrorBInfo CreateArea(SetupAreasGridBData Data);
        SetupAreasGridBData LoadAreas(int PageNumber);
        ErrorBInfo DeleteAreaById(int AreaId);
        SetupAreasGridBData LoadSearchedAreas(SetupAreasGridBData Data);
        ErrorBInfo SaveAreaDetailsData(SetupAreasGridBData Data);
        #endregion
        #region IServiceRepositroy
        ErrorBInfo CreateService(SetupServicesGridBData Data);
        SetupServicesGridBData LoadServices(int PageNumber);
        ErrorBInfo DeleteServiceById(int ServiceId);
        SetupServicesGridBData LoadSearchedServices(SetupServicesGridBData Data);
        ErrorBInfo SaveServiceDetailsData(SetupServicesGridBData Data);
        #endregion
        #region IServiceTypeRepositroy
        ErrorBInfo CreateServiceType(SetupServiceTypesGridBData Data);
        SetupServiceTypesGridBData LoadServiceTypes(int PageNumber);
        SetupServiceTypesGridBData LoadSearchedServiceTypes(SetupServiceTypesGridBData Data);
        ErrorBInfo DeleteServiceTypeById(int ServiceTypeID);
        ErrorBInfo SaveServiceTypeDetailsData(SetupServiceTypesGridBData Data);
        #endregion
        #region IBankRepository
        ErrorBInfo CreateBank(SetupBankDetailsBData Data);
        SetupBanksGridBData LoadAllBanks(int PageNumber);
        ErrorBInfo DeleteBankById(int BankId);
        SetupBanksGridBData LoadSearchedBanks(SetupBanksGridBData Data);
        SetupBankDetailsBData LoadBankDetailsByID(int BankID);
        ErrorBInfo SaveBankDetailsData(SetupBankDetailsBData Data);
        #endregion
        #region ICompanyRepository
        ErrorBInfo CreateCompany(SetupCompanyDetailsBData Data);
        SetupCompaniesGridBData LoadAllCompanies(int PageNumber);
        ErrorBInfo DeleteCompanyById(int CompanyId);
        SetupCompaniesGridBData LoadSearchedCompanies(SetupCompaniesGridBData Data);
        SetupCompanyDetailsBData LoadCompanyDetailsByID(int CompanyID);
        ErrorBInfo SaveCompanyDetailsData(SetupCompanyDetailsBData Data);
        #endregion
        #region IDetailRepositroy
        ErrorBInfo CreateDetail(SetupDetailsGridBData Data);
        SetupDetailsGridBData LoadDetails(int PageNumber);
        SetupDetailsGridBData LoadSearchedDetails(SetupDetailsGridBData Data);
        Dictionary<int, string> GetServiceTypes(int DetailTypeID);
        ErrorBInfo DeleteDetailById(int DetailId);
        ErrorBInfo SaveDetailDetailsData(SetupDetailsGridBData Data);
        #endregion
        #region IVConfStatusRepositroy
        ErrorBInfo CreateVConfStatus(SetupVConfStatusGridRowBData Data);
        SetupVConfStatusGridBData LoadVConfStatus(int PageNumber);
        ErrorBInfo DeleteVConfStatusById(int StatusId);

        SetupVConfStatusGridBData LoadSearchedVConfStatus(SetupVConfStatusGridBData Data);
        ErrorBInfo SaveVConfStatusDetailsData(SetupVConfStatusGridBData Data);
        #endregion
        #region ICityRepositroy
        ErrorBInfo CreateCity(SetupCitiesGridRowBData Data);
        SetupCitiesGridRowBData LoadAddCityDetails();
        SetupCitiesGridBData LoadCities(int PageNumber);
        ErrorBInfo DeleteCityById(int CityId);

        SetupCitiesGridBData LoadSearchedCities(SetupCitiesGridBData Data);
        ErrorBInfo SaveCityDetailsData(SetupCitiesGridBData Data);
        #endregion
        #region IQuotaRegionRepositroy
        ErrorBInfo CreateQuotaRegion(SetupQuotaRegionsGridRowBData Data);
        SetupQuotaRegionsGridBData LoadQuotaRegions(int PageNumber);
        ErrorBInfo DeleteQuotaRegionById(int RegionId);

        SetupQuotaRegionsGridBData LoadSearchedQuotaRegions(SetupQuotaRegionsGridBData Data);
        ErrorBInfo SaveQuotaRegionDetailsData(SetupQuotaRegionsGridBData Data);
        #endregion
        #region ICardRepositroy
        ErrorBInfo CreateCard(SetupCardsGridBData Data);
        SetupCardsGridBData LoadCards(int PageNumber);
        ErrorBInfo DeleteCardById(int CardId);
        SetupCardsGridBData LoadSearchedCards(SetupCardsGridBData Data);
        ErrorBInfo SaveCardDetailsData(SetupCardsGridBData Data);
        #endregion
        #region ITechTypeRepositroy
        ErrorBInfo CreateTechType(SetupTechTypesGridRowBData Data);
        SetupTechTypesGridBData LoadTechTypes(int PageNumber);
        ErrorBInfo DeleteTechTypeById(int TechTypeId);
        SetupTechTypesGridBData LoadSearchedTechTypes(SetupTechTypesGridBData Data);
        ErrorBInfo SaveTechTypeDetailsData(SetupTechTypesGridBData Data);
        #endregion
        #region ISpecialDatesRepositroy
        ErrorBInfo CreateSpecialDate(SetupSpecialDatesGridBData Data);
        SetupSpecialDatesGridBData LoadSpecialDates(int PageNumber);
        SetupSpecialDatesGridBData LoadSearchedSpecialDates(SetupSpecialDatesGridBData Data);
        Dictionary<int, string> GetCity(int? CountryID);
        ErrorBInfo DeleteSpecialDateById(int SpecialDateId);
        ErrorBInfo SaveSpecialDatesDetailsData(SetupSpecialDatesGridBData Data);
        #endregion
        Dictionary<string, string> LoadState();
        Dictionary<int, string> LoadCity(int CountryID, string StateID);
    }
}
